import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
     loadingConfig:{
       isShowLoading:false,
       title:"正在加载"
     }
  },
  mutations: {
    changeLoadingConfig(state,arg){
      state.loadingConfig=arg;
    }
  },
  actions: {
    //显示
    showLoading({commit},title){
      if(title&&title.length>5){
        commit("changeLoadingConfig",{isShowLoading:true,title:""});
        throw new Error("loading的文字最多只能有5个");
      }
      commit("changeLoadingConfig",{isShowLoading:true,title:title});
    },
    //隐藏
    hideLoading({commit}){
      commit("changeLoadingConfig",{isShowLoading:false,title:"正在加载"});
    }
  },
  //方便获取值
  getters:{
    //是否显示加载 
    isShowLoading(state){
      return state.loadingConfig.isShowLoading;
    },
    //加载当中的文字
    loadingText(state){
      return state.loadingConfig.title;
    }
  }
})
